﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using _4.Modelado.Miembros;

namespace _3.Datos.Miembro
{
   public  class ConsolidadoBD
    {
        public void GuardarConsolidacion(SqlCommand comando, Consolidado obj)
        {
            try
            {
                string sp = "usp_ConsolidacionGuardar";

                comando.CommandType = CommandType.StoredProcedure;
                comando.CommandText = sp;
                comando.Parameters.Clear();

                comando.Parameters.Add(new SqlParameter("@PK_Consolidacion", SqlDbType.Int));
                comando.Parameters.Add(new SqlParameter("@ConsNombre", SqlDbType.VarChar));
                comando.Parameters.Add(new SqlParameter("@ConsPrimerApellido", SqlDbType.VarChar));
                comando.Parameters.Add(new SqlParameter("@ConsSegundoApellido", SqlDbType.VarChar));
                comando.Parameters.Add(new SqlParameter("@ConsNacimiento", SqlDbType.Date));
                comando.Parameters.Add(new SqlParameter("@ConsDireccion", SqlDbType.VarChar));
                comando.Parameters.Add(new SqlParameter("@ConsTelefono", SqlDbType.VarChar));
                comando.Parameters.Add(new SqlParameter("@ConsOcupacion", SqlDbType.Char));
                comando.Parameters.Add(new SqlParameter("@ConsRecibioJesus", SqlDbType.Bit));
                comando.Parameters.Add(new SqlParameter("@ConsReconcilacion", SqlDbType.Bit));
                comando.Parameters.Add(new SqlParameter("@ConsVisita", SqlDbType.Bit));
                comando.Parameters.Add(new SqlParameter("@ConsIglesiaEvangelica", SqlDbType.Bit));
                comando.Parameters.Add(new SqlParameter("@ConsSeguimiento", SqlDbType.VarChar));
                comando.Parameters.Add(new SqlParameter("@ConsCorreo", SqlDbType.VarChar));
                comando.Parameters.Add(new SqlParameter("@ConsFecha", SqlDbType.Date));



                comando.Parameters[0].Value = obj.iPK_Consolidado;
                comando.Parameters[1].Value = obj.sConsNombre;
                comando.Parameters[2].Value = obj.sConsPrimerApellido;
                comando.Parameters[3].Value = obj.sConsSegundoApellido;
                comando.Parameters[4].Value = obj.dConsNacimiento;
                comando.Parameters[5].Value =  obj.sConsDireccion;
                comando.Parameters[6].Value = obj.sConsTelefono;
                comando.Parameters[7].Value = obj.sConsOcupacion;
                comando.Parameters[8].Value = obj.bConsRecibioJesus;
                comando.Parameters[9].Value = obj.bConsReconcilacion;
                comando.Parameters[10].Value = obj.bConsVisita;
                comando.Parameters[11].Value = obj.bConsIglesiaEvangelica;
                comando.Parameters[12].Value = obj.sConsSeguimiento;
                comando.Parameters[13].Value = obj.sConsCorreo;
                comando.Parameters[14].Value = obj.dConsFecha;
              


                comando.ExecuteNonQuery();

            }
            catch (Exception exc)
            {

                throw exc;
            }
        }


        public List<Consolidado> ConsultarConsolidacion(SqlCommand comando)
        {
            try
            {
                string sp = "usp_ConsolidacionConsultar";

                comando.CommandType = CommandType.StoredProcedure;
                comando.CommandText = sp;
                comando.Parameters.Clear();

                IDataAdapter da = new SqlDataAdapter((SqlCommand)comando);
                var ds = new DataSet();
                da.Fill(ds);

                DataTable dt = ds.Tables[0];
                var lista = new List<Consolidado>();

                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    var obj = new Consolidado();
                    obj.iPK_Consolidado = Convert.ToInt32(dt.Rows[i]["PK_Consolidacion"]);
                    obj.sConsNombreCompleto = (dt.Rows[i]["nombreCompleto"]).ToString();
                    obj.sConsNombre = (dt.Rows[i]["ConsNombre"]).ToString();
                    obj.sConsPrimerApellido = dt.Rows[i]["ConsPrimerApellido"].ToString();
                    obj.sConsSegundoApellido = dt.Rows[i]["ConsSegundoApellido"].ToString();
                    obj.sConsDireccion = dt.Rows[i]["ConsDireccion"].ToString();
                    obj.dConsNacimiento = Convert.ToDateTime(dt.Rows[i]["ConsNacimiento"]);
                    obj.sConsOcupacion = dt.Rows[i]["ConsOcupacion"].ToString();
                    obj.bConsRecibioJesus = Convert.ToBoolean(dt.Rows[i]["ConsRecibioJesus"]);
                    obj.bConsReconcilacion = Convert.ToBoolean(dt.Rows[i]["ConsReconcilacion"]);
                    obj.bConsVisita = Convert.ToBoolean(dt.Rows[i]["ConsVisita"]);
                    obj.sConsTelefono = dt.Rows[i]["ConsTelefono"].ToString();
                   obj.bConsIglesiaEvangelica = Convert.ToBoolean(dt.Rows[i]["ConsIglesiaEvangelica"]);
                    obj.sConsSeguimiento = dt.Rows[i]["ConsSeguimiento"].ToString();
                    obj.dConsFecha = Convert.ToDateTime(dt.Rows[i]["ConsFecha"]);
                    obj.sConsCorreo = dt.Rows[i]["Correo"].ToString();


                    lista.Add(obj);
                }
                return lista;
            }
            catch (Exception exc)
            {

                throw exc;
            }
        }
       


        public List<Consolidado> ConsultarConsolidado(SqlCommand comando,Consolidado obp)
        {
            try
            {
                string sp = "usp_ConsolidadoConsultar";

                comando.CommandType = CommandType.StoredProcedure;
                comando.CommandText = sp;
                comando.Parameters.Clear();

                comando.Parameters.Add(new SqlParameter("@nombre", SqlDbType.VarChar));
                comando.Parameters.Add(new SqlParameter("@codigo", SqlDbType.Int));
                comando.Parameters[0].Value = obp.sNombre;
                comando.Parameters[1].Value = obp.iCodigo;


                IDataAdapter da = new SqlDataAdapter((SqlCommand)comando);
                var ds = new DataSet();
                da.Fill(ds);

                DataTable dt = ds.Tables[0];
                var lista = new List<Consolidado>();

                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    var obj = new Consolidado();
                    obj.iPK_Consolidado = Convert.ToInt32(dt.Rows[i]["PK_Consolidacion"]);
                    obj.sConsNombreCompleto = (dt.Rows[i]["nombreCompleto"]).ToString();
                    obj.sConsNombre = (dt.Rows[i]["ConsNombre"]).ToString();
                    obj.sConsPrimerApellido = dt.Rows[i]["ConsPrimerApellido"].ToString();
                    obj.sConsSegundoApellido = dt.Rows[i]["ConsSegundoApellido"].ToString();
                    obj.sConsDireccion = dt.Rows[i]["ConsDireccion"].ToString();
                    obj.dConsNacimiento = Convert.ToDateTime(dt.Rows[i]["ConsNacimiento"]);
                    obj.sConsOcupacion = dt.Rows[i]["ConsOcupacion"].ToString();
                    obj.bConsRecibioJesus = Convert.ToBoolean(dt.Rows[i]["ConsRecibioJesus"]);
                    obj.bConsReconcilacion = Convert.ToBoolean(dt.Rows[i]["ConsReconcilacion"]);
                    obj.bConsVisita = Convert.ToBoolean(dt.Rows[i]["ConsVisita"]);
                    obj.sConsTelefono = dt.Rows[i]["ConsIglesiaEvangelica"].ToString();
                    obj.bConsIglesiaEvangelica = Convert.ToBoolean(dt.Rows[i]["ConsIglesiaEvangelica"]);
                    obj.sConsSeguimiento = dt.Rows[i]["ConsSeguimiento"].ToString();
                    obj.dConsFecha = Convert.ToDateTime(dt.Rows[i]["ConsFecha"]);

                    lista.Add(obj);
                }
                return lista;
            }
            catch (Exception exc)
            {

                throw exc;
            }
        }

        public void EliminarConsolidacion(SqlCommand comando, Consolidado obj)
        {
            try
            {
                string sp = "usp_ConsolidacionEliminar";

                comando.CommandType = CommandType.StoredProcedure;
                comando.CommandText = sp;
                comando.Parameters.Clear();

                comando.Parameters.Add(new SqlParameter("@PK_Consolidacion", SqlDbType.Int));
                comando.Parameters[0].Value = obj.iPK_Consolidado;


                comando.ExecuteNonQuery();

            }
            catch (Exception e)
            {

                throw e;
            }
        }
    }
}
